package cn.xie.blog.model.common.entity.login;

import cn.xie.blog.model.common.entity.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serial;
import java.time.LocalDateTime;

/**
 * @author: xiaoxie
 * create: 2025-04-22 19:38
 * @BelongsProject: blog-parent
 * @BelongsPackage: cn.xie.blog.model.common.entity.login
 * description: 用户类
 */
@TableName("users")
@Data
public class UserEntity extends BaseEntity {
    @Serial
    private static final long serialVersionUID = 1L;

    @TableField("user_id")
    @TableId(type = IdType.AUTO)// 映射数据库中的 user_id 字段
    private Long userId; // 对应数据库的 user_id 字段

    @TableField("username")
    private String username; // 映射数据库中的 username 字段

    @TableField("email")
    private String email; // 映射数据库中的 email 字段

    @TableField("password_hash")
    private String passwordHash; // 映射数据库中的 password_hash 字段

    @TableField("avatar_url")
    private String avatarUrl; // 映射数据库中的 avatar_url 字段

    @TableField("bio")
    private String bio; // 映射数据库中的 bio 字段

    @TableField("created_at")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt; // 映射数据库中的 created_at 字段

    @TableField("last_login")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLogin; // 映射数据库中的 last_login 字段

    @TableField("is_admin")
    private int isAdmin; // 映射数据库中的 is_admin 字段

    @TableField("update_at") // 注意：这里拼写为 update_at，需根据实际数据库字段名确定
    private org.joda.time.LocalDateTime updateAt; // 映射数据库中的 update_at 字段（假设是 updated_at 的拼写错误）

    @TableField("salt")
    private String salt; // 映射数据库中的 salt 字段

    @TableField("is_delete")
    private int isDelete; // 映射数据库中的 is_delete 字段

}
